package interfaces;

import java.util.LinkedList;

import board.Board;

/**
 * Klasa zawieraj�ca informacje o obliczeniach. B�dzie zwracana jako wynik dzia�ania algorytmu.
 * @author Kuba
 *
 */
public class Info {
	/**
	 * Czas wykonywania algorytmu (w ms)
	 */
	private long solvingTime;
	/**
	 * Liczba krokow algorytmu (ilo�� przesuniec)
	 */
	private long numberOfSteps;
	
	/**
	 * Zmienna informujaca czy rozwiazanie zostalo osiagniete. true - tak, false - nie
	 */
	private boolean solutionFound;
	
	/**
	 * Konstruktor domy�lny, na wszelki wypadek
	 */
	
	private LinkedList<Board.Way> steps;
	
	public Info(){}
	
	/**
	 * Konstruktor z parametrami
	 * @param solvingTime czas wykonywania algorytmy (w ms)
	 * @param numberOfSteps liczba krok�w algorytmu (ilo�� przesuni��)
	 */
	public Info(long solvingTime, long numberOfSteps, boolean solutionFound, LinkedList<Board.Way> steps){
		this.solvingTime = solvingTime;
		this.numberOfSteps = numberOfSteps;
		this.solutionFound = solutionFound;
		this.steps = steps;
	}

	public long getSolvingTime(){
		return solvingTime;
	}
	
	public long getNumberOfSteps(){
		return numberOfSteps;
	}
	
	public boolean isSolutionFound(){
		return solutionFound;
	}
	
	public LinkedList<Board.Way> getSteps(){
		return steps;
	}
}
